package me.ivenapp.gomoku;

import ohos.agp.utils.Point;
import ohos.agp.window.service.Display;
import ohos.agp.window.service.DisplayManager;
import ohos.app.Context;

public class DisplayUtil{

    /**
     * 获取屏幕宽度。这个宽度并不是实际像素宽度，例如适应小屏幕缩放后的宽度。
     *
     * @param context 上下文
     * @return 屏幕宽度
     */
    public static int getDisplayWidthInPx(Context context) {
        Display display = DisplayManager.getInstance().getDefaultDisplay(context).get();
        Point point = new Point();
        display.getSize(point);
        return (int) point.getPointX();
    }

    /**
     * 获取屏幕真实尺寸
     * @param context
     * @return
     */
    public static Point getRealSize(Context context) {
        Display display = DisplayManager.getInstance().getDefaultDisplay(context).get();
        Point point = new Point();
        display.getRealSize(point);
        return point;
    }

    /**
     * 获取屏幕宽高比例
     * @return
     */
    public static float getRatio(Context context) {
        Point point = getRealSize(context);
        return point.getPointX() / point.getPointY();
    }

    /**
     * 获取屏幕高度，不包含状态栏的高度
     *
     * @param context 上下文
     * @return 屏幕高度，不包含状态栏的高度
     */
    public static float getDisplayHeight(Context context) {
        Display display = DisplayManager.getInstance().getDefaultDisplay(context).get();
        Point point = new Point();
        display.getSize(point);
        return point.getPointY();
    }

    public static int getStatusBarHeight(Context context) {
        Point realPoint = new Point();
        Point cntPoint = new Point();
        Display display =  DisplayManager.getInstance().getDefaultDisplay(context).get();
        display.getRealSize(realPoint);
        display.getSize(cntPoint);
        return (int) (realPoint.getPointY() - cntPoint.getPointY());
    }
}